<!DOCTYPE html>
<html lang="en-US">
    <head>
        <title>Pod::PXML - metacpan.org</title>
        <link rel="preload" as="fetch" href="https://metacpan.org/account/login_status" crossorigin="anonymous" />
        <link href="https://metacpan.org/_assets/b8ccceeed47a0652049703d99326a9cea4933443.css" rel="stylesheet" type="text/css">
        <script src="https://metacpan.org/_assets/6bfedafe2d7caa915b7d84f61b45936818e3242e.js" type="text/javascript" defer></script>
        <link rel="alternate" type="application/rss+xml" title="Recent CPAN Uploads of Pod-PXML - MetaCPAN" href="https://metacpan.org/dist/Pod-PXML/releases.rss" />
        <link rel="canonical" href="./Pod::PXML.html" />
        <meta name="description" content="pxml2pod, pod2pxml" />
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5">
        <link rel="shortcut icon" href="https://metacpan.org/static/icons/favicon.ico">
        <link rel="apple-touch-icon" sizes="152x152" href="https://metacpan.org/static/icons/apple-touch-icon.png">
        <link rel="search" href="https://metacpan.org/static/opensearch.xml" type="application/opensearchdescription+xml" title="MetaCPAN">
        <script>
          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

          (function(skey, ga_id){
            ga('create', ga_id, {
              siteSpeedSampleRate : 100,
              storage             : 'none',
              clientId            : localStorage.getItem(skey)
            });
            ga(function(tracker) {
              localStorage.setItem(skey, tracker.get('clientId'));
            });
            ga('send', 'pageview');
          })('ga:clientId', 'UA-27829474-1');
        </script>
<meta name="twitter:card"        content="summary" />
<meta name="twitter:url"         content="https://metacpan.org/pod/Pod::PXML" />
<meta name="twitter:title"       content="Pod::PXML" />
<meta name="twitter:description" content="" />
<meta name="twitter:site"        content="metacpan" />
    </head>
    <body>
        <nav class="navbar navbar-default" role="navigation">
            <div class="header-logo-large hidden-xs">
              <a href="https://metacpan.org/" tabindex="0">
                <svg class="logo" aria-label="MetaCPAN">
                  <use class="logo" href="/static/images/metacpan-logo.svg#logo" />
                </svg>
              </a>
            </div>
            <div class="header-logo-icon visible-xs">
              <a href="https://metacpan.org/">
                <svg class="logo" aria-label="MetaCPAN">
                  <use class="logo" href="/static/images/metacpan-logo.svg#dots" />
                </svg>
              </a>
            </div>
            <ul class="nav navbar-nav menu-items hidden-xs hidden-sm">
              <li><a href="https://metacpan.org/about">About</a></li>
              <li><a href="https://metacpan.org/about/sponsors">Sponsor</a></li>
              <li><a href="https://grep.metacpan.org/">grep::cpan</a></li>
              <li><a href="https://metacpan.org/recent">Recent</a></li>
              <li><a href="https://metacpan.org/about/faq">FAQ</a></li>
              <li><a href="https://metacpan.org/tools">Tools</a></li>
              <li><a href="https://fastapi.metacpan.org/">API</a></li>
            </ul>
            <ul class="nav navbar-nav navbar-right">
                <button type="button" class="searchbar-btn visible-xs visible-sm">
                    <i class="fa fa-search button-fa-icon"></i>
                </button>
                <form action="https://metacpan.org/search" class="searchbar-form visible-md visible-lg search-form form-horizontal">
                   <input type="hidden" name="size" id="metacpan_search-size" value="20">
                  <div class="form-group">
                      <div class="search-group">
                        <i class="fa fa-search"></i>
                        <input type="text" name="q" placeholder="Search the CPAN" size="41" autocorrect="off" autocapitalize="off" spellcheck="false" id="metacpan_search-input" class="form-control" value="">
                      </div>
                  </div>
                </form>
                    <li class="icon-slidepanel visible-xs visible-sm">
                      <button data-toggle="slidepanel" data-target=".slidepanel">
                        <span class="button-fa-icon">
                          <i class="fa fa-bars slidepanel-open"></i>
                          <i class="fa fa-times slidepanel-close"></i>
                        </span>
                      </button>
                    </li>
                <form action="https://metacpan.org/account/logout" method="POST" id="metacpan-logout"></form>
                <li class="dropdown logged_in" style="display: none;">
                    <button type="button" class="dropdown-toggle" data-toggle="dropdown">
                      <i class="fa fa-user button-fa-icon logged-in-icon" aria-hidden="true"></i>
                      <i class="fas fa-chevron-down"></i>
                    </button>
                    <ul class="dropdown-menu">
                        <li><a href="https://metacpan.org/account/identities">Identities</a></li>
                        <li><a href="https://metacpan.org/account/profile">Profile</a></li>
                        <li><a href="https://metacpan.org/account/favorite/list">Favorites</a></li>
                        <li>
                            <a href="./Pod::PXML.html#" type="button" onclick="$('#metacpan-logout').submit(); return false">
                              Logout
                            </a>
                        </li>
                    </ul>
                </li>
                <li class="dropdown logged_out" style="display: none;">
                    <button type="button" class="dropdown-toggle" data-toggle="dropdown">
                      <i class="fa fa-user button-fa-icon" aria-hidden="true"></i>
                      <i class="fas fa-chevron-down"></i>
                    </button>
                    <ul class="dropdown-menu">
                        <li>
                            <a href="https://metacpan.org/login/github">
                                <i class="fab fa-github fa-fw"></i>
                                GitHub
                            </a>
                        </li>
                        <li>
                            <a href="https://metacpan.org/login/twitter">
                                <i class="fab fa-twitter fa-fw"></i>
                                Twitter
                            </a>
                        </li>
                        <li>
                            <a href="https://metacpan.org/login/google">
                                <i class="fab fa-google fa-fw"></i>
                                Google
                            </a>
                        </li>
                    </ul>
                </li>
                <li class="dropdown logged_placeholder">
                    <button>
                      <i class="fa fa-user button-fa-icon" aria-hidden="true"></i>
                    </button>
                </li>
            </ul>
        </nav>
        <div class="page-content ">
          <!--
          <div class="top-notify-banner">
            <i class="fas fa-info-circle"></i>
          </div>
          -->
          <nav class="sidebar">
            <div class="slidepanel">
              <ul class="nav-list ">
    <li class="nav-header no-margin-top">
      <div class="ttip" data-toggle="tooltip" data-placement="bottom" title="The date that this version of Pod-PXML was released.">
      <span class="relatize">30 Dec 2004 07:49:24 UTC</span>
    </li>
  <li>
    Distribution: <a href="https://metacpan.org/dist/Pod-PXML">Pod-PXML</a>
  </li>
  <li>
    Module version: 0.12
  </li>
  <li>
    <a data-keyboard-shortcut="g s" href="https://metacpan.org/dist/Pod-PXML/source/lib/Pod/PXML.pm">Source</a>
    (<a href="https://metacpan.org/dist/Pod-PXML/source/lib/Pod/PXML.pm?raw=1">raw</a>)
  </li>
  <li>
    <a data-keyboard-shortcut="g p" href="https://metacpan.org/dist/Pod-PXML/source/lib/Pod/PXML.pod">Pod Source</a>
    (<a href="https://metacpan.org/dist/Pod-PXML/source/lib/Pod/PXML.pod?raw=1">raw</a>)
  </li>
  <li>
    <a data-keyboard-shortcut="g b" href="https://metacpan.org/dist/Pod-PXML/source/lib/Pod">Browse</a>
    (<a href="https://metacpan.org/dist/Pod-PXML/source/lib/Pod?raw=1">raw</a>)
  </li>
    <li>
      <a data-keyboard-shortcut="g c" href="https://metacpan.org/dist/Pod-PXML/changes">Changes</a>
    </li>
    <li>
      <a class="nopopup" href="https://metacpan.org/dist/Pod-PXML/contribute">How to Contribute</a>
    </li>
    <li>
      <a rel="noopener nofollow" data-keyboard-shortcut="g i" href="https://rt.cpan.org/Public/Dist/Display.html?Name=Pod-PXML">Issues</a>
    </li>
    <li>
      <a rel="noopener nofollow" href="http://matrix.cpantesters.org/?dist=Pod-PXML+0.12" title="Matrix">Testers</a>
        <span title="(pass / fail / na)">(<a rel="noopener nofollow" href="https://www.cpantesters.org/distro/P/Pod-PXML.html?oncpan=1&amp;distmat=1&amp;version=0.12&amp;grade=2" style="color: #090">20</a> / <a rel="noopener nofollow" href="https://www.cpantesters.org/distro/P/Pod-PXML.html?oncpan=1&amp;distmat=1&amp;version=0.12&amp;grade=3" style="color: #900">0</a> / <a rel="noopener nofollow" href="https://www.cpantesters.org/distro/P/Pod-PXML.html?oncpan=1&amp;distmat=1&amp;version=0.12&amp;grade=4">0</a>)</span>
    </li>
    <li>
      <a rel="noopener nofollow" href="http://cpants.cpanauthors.org/release/SBURKE/Pod-PXML-0.12">Kwalitee</a>
    </li>
    <li>
      <div class="ttip" data-toggle="tooltip" data-placement="bottom" title="The # people with an indexing permission on Pod-PXML who have released something to CPAN in the last 2 years (i.e. the # people likely able to release critical fixes in a timely manner)">
      Bus factor: 0
      </div>
    </li>
    <li>
      <a rel="noopener nofollow" href="http://cpancover.com/latest/Pod-PXML-0.12/index.html">5.60% Coverage </a>
    </li>
    <li>
      License: unknown
    </li>
    <li class="nav-header">Activity</li>
    <li>
<div class="activity-graph">
    <img src="https://metacpan.org/dist/Pod-PXML/activity.svg?res=month" />
    <div class="comment">24 month</div>
</div>
    </li>
    <li class="nav-header">Tools</li>
    <li>
      <a itemprop="downloadUrl" href="https://cpan.metacpan.org/authors/id/S/SB/SBURKE/Pod-PXML-0.12.tar.gz">
      Download (<span itemprop="fileSize">12.42KB</span>)</a>
    </li>
    <li>
      <a href="https://explorer.metacpan.org/?url=%2Fmodule%2FSBURKE%2FPod-PXML-0.12%2Flib%2FPod%2FPXML.pm">
        MetaCPAN Explorer
      </a>
    </li>
    <li>
      <a href="https://metacpan.org/dist/Pod-PXML/permissions">
        Permissions
      </a>
    </li>
    <li>
      <a href="https://metacpan.org/dist/Pod-PXML/releases.rss">
        Subscribe to distribution
      </a>
    </li>
    <li>
      <button class="btn btn-link" data-toggle="modal" data-target="#metacpan_install-instructions-dialog">
        Install Instructions
      </button>
    </li>
    <li>
      <form action="https://metacpan.org/search">
        <input type="hidden" name="q" value="dist:Pod-PXML">
        <input type="search" name="q" placeholder="Search distribution" class="form-control tool-bar-form">
        <input type="submit" style="display: none">
      </form>
    </li>
    <li>
      <form action="https://grep.metacpan.org/search">
        <input type="hidden" name="qd" value="Pod-PXML">
        <input type="hidden" name="source" value="metacpan">
        <input type="search" name="q" placeholder="grep distribution" class="form-control tool-bar-form">
        <input type="submit" style="display: none">
     </form>
    </li>
    <li class="version-jump">
<select onchange="document.location.href=&#39;/release/&#39;+this.value+&#39;/view/lib/Pod/PXML.pm&#39;" class="form-control tool-bar-form">
  <option disabled selected>Jump to version</option>
<option
  disabled
  value="SBURKE/Pod-PXML-0.12"
>0.12
  (SBURKE on 2004-12-30)</option>
<optgroup label="BackPAN">'
<option
  
  value="SBURKE/Pod-PXML-0.1001"
>0.1001
  (SBURKE on 2001-05-26)</option>
</optgroup>
</select>
    </li>
    <li class="version-diff">
<select onchange="document.location.href='/release/SBURKE/Pod-PXML-0.12/diff/' + encodeURIComponent(this.value) + '/lib/Pod/PXML.pm'
" class="form-control tool-bar-form">
  <option disabled selected>Diff with version</option>
<option
  disabled
  value="SBURKE/Pod-PXML-0.12"
>0.12
  (SBURKE on 2004-12-30)</option>
<optgroup label="BackPAN">'
<option
  
  value="SBURKE/Pod-PXML-0.1001"
>0.1001
  (SBURKE on 2001-05-26)</option>
</optgroup>
</select>
    </li>

    <li>
<ul class="dependencies">
  <li class="nav-header">Dependencies</li>
  <li><a href="./HTML::Entities.html" title="HTML::Entities" class="ellipsis">HTML::Entities</a></li>
  <li><a href="https://metacpan.org/pod/Pod::Text" title="Pod::Text" class="ellipsis">Pod::Text</a></li>
  <li><a href="https://metacpan.org/pod/Pod::Tree" title="Pod::Tree" class="ellipsis">Pod::Tree</a></li>
  <li><a href="./XML::Parser.html" title="XML::Parser" class="ellipsis">XML::Parser</a></li>
  <li><i class="ttip" title="dynamic_config enabled">and possibly others</i></li>
  <li>
    <hr>
  </li>
  <li>
    <a href="https://metacpan.org/module/Pod::PXML/requires">Reverse dependencies</a>
  </li>
  <li>
    <a href="http://deps.cpantesters.org/?module=Pod%3A%3APXML">CPAN Testers List</a>
  </li>
  <li>
    <a href="https://cpandeps.grinnz.com/?dist=Pod-PXML">Dependency graph</a>
  </li>
</ul>
    </li>
    <li class="nav-header">Permalinks</li>
    <li>
      <a href="https://metacpan.org/release/SBURKE/Pod-PXML-0.12/view/lib/Pod/PXML.pm">This version</a>
    </li>
    <li>
      <a href="./Pod::PXML.html">Latest version</a>
    </li>
    <li>
    </li>
    <li>
    </li>
              </ul>
            </div>
          </nav>
          <div class="content-navigation">
<div class="breadcrumbs">
  <span>
    <a data-keyboard-shortcut="g a" rel="author" href="https://metacpan.org/author/SBURKE" class="author-name">Sean M. Burke</a>
  </span>
  <span>&nbsp;/&nbsp;</span>
  <div class="release dist-release status-latest maturity-released">
    <span class="dropdown"><b class="caret"></b></span>
<select onchange="document.location.href=&#39;/release/&#39;+this.value+&#39;/view/lib/Pod/PXML.pm&#39;" class="">
<option
  selected
  value="SBURKE/Pod-PXML-0.12"
>0.12
  (SBURKE on 2004-12-30)</option>
<optgroup label="BackPAN">'
<option
  
  value="SBURKE/Pod-PXML-0.1001"
>0.1001
  (SBURKE on 2001-05-26)</option>
</optgroup>
</select>
    <a data-keyboard-shortcut="g d" class="release-name" href="https://metacpan.org/dist/Pod-PXML">Pod-PXML-0.12</a>
  </div>
<span class="river-gauge-gauge">
  <svg width="24px"
       height="15px"
       version="1.1"
       xmlns="http://www.w3.org/2000/svg"
       xmlns:xlink="http://www.w3.org/1999/xlink">

    <g>
      <title>        River stage zero &#10;
          No dependents
      </title>

      <rect x="0"  y="0" width="4" height="15" fill="#e4e2e2" />
      <rect x="5"  y="0" width="4" height="15" fill="#e4e2e2" />
      <rect x="10"  y="0" width="4" height="15" fill="#e4e2e2" />
      <rect x="15"  y="0" width="4" height="15" fill="#e4e2e2" />
      <rect x="20"  y="0" width="4" height="15" fill="#e4e2e2" />
    </g>
  </svg>

</span>
<div id="Pod-PXML-fav" class="logged_in">
<form action="https://metacpan.org/account/favorite/add" style="display: inline" onsubmit="return favDistribution(this)">
    <input type="hidden" name="remove" value="0">
    <input type="hidden" name="release" value="Pod-PXML-0.12">
    <input type="hidden" name="author" value="SBURKE">
    <input type="hidden" name="distribution" value="Pod-PXML">
    <button type="submit" class="favorite"><span></span> ++</button>
</form>
</div>
<div class="logged_out">
<a href="./Pod::PXML.html" onclick="alert('Please sign in to add favorites'); return false" class="favorite">
<span></span> ++</a>
</div>
   / <span>Pod::PXML</span>
</div>
          </div>
          <main class="content">


<nav class="toc">
  <div class="toc-header"><strong>Contents</strong></div>
<ul>
  <li><a href="./Pod::PXML.html#NAME">NAME</a></li>
  <li><a href="./Pod::PXML.html#SYNOPSIS">SYNOPSIS</a></li>
  <li><a href="./Pod::PXML.html#DESCRIPTION">DESCRIPTION</a></li>
  <li><a href="./Pod::PXML.html#WARNING">WARNING</a></li>
  <li><a href="./Pod::PXML.html#FUNCTIONS">FUNCTIONS</a></li>
  <li><a href="./Pod::PXML.html#WARNING1">WARNING</a></li>
  <li><a href="./Pod::PXML.html#ABOUT-THE-XML-DOCUMENT-TYPE">ABOUT THE XML DOCUMENT TYPE</a>
    <ul>
      <li><a href="./Pod::PXML.html#POD-format-/-PXML-Correspondences">POD-format / PXML Correspondences</a></li>
    </ul>
  </li>
  <li><a href="./Pod::PXML.html#TODO">TODO</a></li>
  <li><a href="./Pod::PXML.html#SEE-ALSO">SEE ALSO</a></li>
  <li><a href="./Pod::PXML.html#COPYRIGHT-AND-DISCLAIMER">COPYRIGHT AND DISCLAIMER</a></li>
  <li><a href="./Pod::PXML.html#AUTHOR">AUTHOR</a></li>
</ul></nav>
<div class="pod anchors">
<h1 id="NAME">NAME</h1>

<p>Pod::PXML -- pxml2pod, pod2pxml</p>

<h1 id="SYNOPSIS">SYNOPSIS</h1>

<pre><code>  use Pod::PXML;
  
  # Take from a file...
  open(XMLOUT, &quot;&gt;foo.xml&quot;) || die &quot;can&#39;t wropen foo.xml: $!&quot;;
  binmode(XMLOUT);
  print XMLOUT Pod::PXML::pod2xml(&#39;foo.pod&#39;);
  close(XMLOUT);
  
  # Take from a file, going the other way:
  open(PODOUT, &quot;&gt;foo.pod&quot;) || die &quot;can&#39;t wropen foo.pod: $!&quot;;
  binmode(PODOUT);
  print PODOUT Pod::PXML::xml2pod(&#39;foo.xml&#39;);
  close(PODOUT);
  
  # Or take from STDIN:
  print &#39;&#39;, Pod::PXML::pod2xml(\join &#39;&#39;, &lt;STDIN&gt;);
  # Or the other way;
  print &#39;&#39;, Pod::PXML::xml2pod(\join &#39;&#39;, &lt;STDIN&gt;);</code></pre>

<h1 id="DESCRIPTION">DESCRIPTION</h1>

<p>Perl&#39;s documention is conventionally expressed in Plain Old Documentation.</p>

<p>POD-format is a wonderfully concise text format, but it is quite idiosyncratic. This module seeks to make it easier to turn text that&#39;s in POD-format into XML, and to turn text that&#39;s in XML into POD-format.</p>

<h1 id="WARNING">WARNING</h1>

<p>This module is experimental!! It works right on almost all data, but there are a few oddities left -- mostly in the handling of odd L&lt;...&gt; syntax. Some of these are because of bugs in the current Pod::Tree version (1.06), and some of these are because of basic conceptual problems in perlpod. Both of these should be cleared up eventually. If you get strange results from this module, do email me.</p>

<h1 id="FUNCTIONS">FUNCTIONS</h1>

<ul>

<p>TODO: document options?</p>

<p>TODO: allow treating comment blocks outside paragrapms as &lt;!-- ... --&gt;?</p>

<p>$xml_text = Pod::PXML::pod2xml($filename);</p>

<p>$xml_text = Pod::PXML::pod2xml(\$content);</p>

<p>Returns XML content that represents the POD-format text that was input.</p>

<p>$pod_text = Pod::PXML::xml2pod($filename);</p>

<p>$pod_text = Pod::PXML::xml2pod(\$content);</p>

<p>Returns POD-format content that represents the PXML text that was input.</p>

</ul>

<h1 id="WARNING1">WARNING</h1>

<p>This module and the PXML DTD are still in the EXPERIMENTAL stage. If you don&#39;t like the way something works, or if you think something&#39;s broken, email me sooner rather than later! I mean for this module to be actually useful to people in their XMLificational PODulatory document doings.</p>

<h1 id="ABOUT-THE-XML-DOCUMENT-TYPE"><a id="ABOUT"></a>ABOUT THE XML DOCUMENT TYPE</h1>

<p>This module&#39;s idea of XML isn&#39;t just <i>any</i> sort of XML, but is XML complying to a DTD. &quot;PXML&quot; is what I call the document type that my DTD declares.</p>

<p>The design goals of PXML are to be a 1:1 representation of all <i>meaningful distinctions</i> you can make in valid POD-format -- if it&#39;s a meaningful distinction you can validly express in POD-format, I want to be able to convert that to isomorphic PXML. Moreover, I want to be able to write PXML that can represent any meaningful distinction in valid POD-format, once I convert it to POD-format.</p>

<p>So, whether you write &quot;$a&gt;$b&quot; in POD-format as &quot;$aE&lt;lt&gt;$b&quot; or as &quot;$aE&lt;60&gt;$b&quot; is <i>not</i> a meaningful distinction, because &quot;E&lt;lt&gt;&quot; or as &quot;E&lt;60&gt;&quot; represent the same character. However, the difference between &quot;=head1&quot; and &quot;=head2&quot; is meaningful, and the difference between &quot;C&lt;...&gt;&quot; and &quot;F&lt;...&gt;&quot; is meaningful, and so these distinctions should be present in the PXML representation of the POD.</p>

<p>A secondary design goal is that PXML be as minimal as possible; specifically, there shouldn&#39;t be anything in PXML (whether element or attribute) that doesn&#39;t correspond <i>directly</i> to some part of POD-format.</p>

<p>So, while you might want to represent this:</p>

<pre><code>  =item Foo
  
  Bar</code></pre>

<p>as this:</p>

<pre><code>  &lt;item&gt;
    &lt;label&gt;Foo&lt;/label&gt;
    &lt;p&gt;Bar&lt;/p&gt;
  &lt;/item&gt;</code></pre>

<p>or while you might want to represent this:</p>

<pre><code>  =head1 Foo
  
  Bar</code></pre>

<p>as this:</p>

<pre><code>  &lt;section1&gt;
    &lt;head1&gt;Foo&lt;/head1&gt;
    &lt;p&gt;Bar&lt;/p&gt;
  &lt;/section1&gt;</code></pre>

<p>...those are <i>not</i> the way I do it, even tho I considered both. Why did I decide against those? Because there&#39;s no &quot;label&quot; or &quot;section1&quot; in POD-format.</p>

<p>Instead, I do:</p>

<pre><code>  &lt;item&gt;Foo&lt;/item&gt;
  &lt;p&gt;Bar&lt;/p&gt;</code></pre>

<p>and</p>

<pre><code>  &lt;head1&gt;Foo&lt;/item&gt;
  &lt;p&gt;Bar&lt;/p&gt;
  </code></pre>

<p>Moreover:</p>

<ul>

<p>For any valid POD-format input you provide, this module should emit XML that conforms to the PXML DTD. For any XML input that you feed in that comforms to the PXML DTD, this module should emit valid POD.</p>

</ul>

<h2 id="POD-format-/-PXML-Correspondences"><a id="POD"></a><a id="POD-format---PXML-Correspondences"></a>POD-format / PXML Correspondences</h2>

<p>The PXML DTD is still not entirely nailed down, but once it is, then this section should be rather more verbose.</p>

<pre><code>  POD-format  -------------------------------  PXML

  A normal paragraph:
  Hummina hummina?                  =    &lt;p&gt;Hummina hummina?
  Woozle wuzzle.                         Woozle wuzzle.&lt;/p&gt;</code></pre>

<p>--</p>

<pre><code>  A verbatim paragraph:             =    &lt;pre&gt;
    while(1) {                             while(1) {
      print &quot;Matanga!!\n&quot;;                   print &quot;Matanga!!\n&quot;;
    }                                      }
                                         &lt;/pre&gt;</code></pre>

<p>--</p>

<pre><code>  =head1 DEMANDS
                                    =    &lt;head1&gt;DEMANDS&lt;/head1&gt;
  My list of demands:                    &lt;p&gt;My list of demands:&lt;/p&gt;</code></pre>

<p>(ditto for head2, head3, head4)</p>

<p>--</p>

<pre><code>  =over 5
                                         &lt;list indent=&quot;5&quot;&gt;
  =item 1.                          =    &lt;item&gt;1.&lt;/item&gt;
                                         &lt;p&gt;I like pie.&lt;/p&gt;
  I want pie.                            &lt;/list&gt;
  
  =back</code></pre>

<p>--</p>

<pre><code>  Mmmmmmm.                               &lt;p&gt;Mmmmmmm.
  Glorious I&lt;italic pie&gt;,                Glorious &lt;i&gt;italic pie&lt;/i&gt;,
  C&lt;codic pie&gt;, F&lt;filed pie&gt;,       =    &lt;c&gt;codic pie&lt;/c&gt;, &lt;f&gt;filed pie&lt;/f&gt;,
  B&lt;boldened pie&gt;, and even              &lt;b&gt;boldened pie&lt;/b&gt;, and even
  even X&lt;indexed pie&gt;.                   even &lt;x&gt;indexed pie&lt;/x&gt;.&lt;/p&gt;
  
  And even S&lt;nested unbroken        =    And even &lt;s&gt;nested unbroken
  I&lt;italic B&lt;boldened                    &lt;i&gt;italic &lt;b&gt;boldened
  C&lt;codic pie&gt;&gt;&gt;&gt;!                       &lt;c&gt;codic pie&lt;/c&gt;&lt;/b&gt;&lt;/i&gt;&lt;/s&gt;!
  
  See also L&lt;rhubarb pie            =    &lt;link page=&quot;Pie::Filling&quot;
  filling|Pie::Filling/&quot;Rhubarb&quot;&gt;.       section=&quot;Rhubarb&quot;
                                         &gt;rhubarb pie filling&lt;/link&gt;</code></pre>

<p>(Formatting of L&lt;...&gt; elements where there&#39;s no L&lt;text|...&gt; is inconsistent across different POD renderers. I strongly advise that you always use the L&lt;text|...&gt; style.)</p>

<p>If you&#39;re unsure about a particular POD-format construct, run pod2pxml on it, and see what happens. Be sure to report any oddities to me.</p>

<p>Note that XML PIs and comments are currently ignored by translation to POD. If you want comments that survive round-tripping pxml2pod2pxml, then you&#39;d probably better put them in a</p>

<pre><code>  &lt;for target=&quot;comments&quot;&gt;Comments Here&lt;/for&gt;</code></pre>

<p>block. And remember that those can&#39;t occur in the middle of paragraphs.</p>

<h1 id="TODO">TODO</h1>

<p>There should be a Pod::Tree/Pod::Parser subclass that will deal with:</p>

<pre><code>  =begin pxml
  
  [...pxml...]
  
  =end pxml</code></pre>

<p>and parse it as if it were POD-format, transparently.</p>

<p>Conversely, there should be improved facility for reading POD-format transparently as PXML.</p>

<p>Smarter support for E&lt;...&gt; in pxml2pod -- currently most high-bit characters just end up as E&lt;number&gt;.</p>

<p>Make the XML output indented?</p>

<p>(Optionally?) Collapse non-verbatim whitespace in pxml2pod? Also (optionally?) re-wrap?</p>

<p>Handling of XML namespaces? At least for skipping foreign-namespace elements? Tell me what you want.</p>

<p>Handling of different encodings? Allow specifying UTF-8 / Latin-1 POD to/from UTF-8 / Latin-1 PXML?</p>

<h1 id="SEE-ALSO"><a id="SEE"></a>SEE ALSO</h1>

<p><a href="https://metacpan.org/pod/perlpod">perlpod</a> documents POD-format.</p>

<p><a href="https://metacpan.org/pod/Pod::Tree">Pod::Tree</a> is the class that I use for parsing POD-format.</p>

<p><a href="./XML::Parser.html">XML::Parser</a> is the class that I use for parsing XML.</p>

<p><a href="./Pod::Parser.html">Pod::Parser</a> is a different POD-format parser class.</p>

<p><a href="./Pod::XML.html">Pod::XML</a> is Matt Sergeant&#39;s approach to this, and it has a quite different doctype.</p>

<p>I once wrote <a href="https://metacpan.org/pod/Pod::HTML2POD">Pod::HTML2POD</a>, which is much much crazier inside than this module is. After I while, I figure that if I could (effectively!) convert HTML into POD, why not XML? And seeing Matt Sergeant&#39;s Pod::XML module got me going.</p>

<h1 id="COPYRIGHT-AND-DISCLAIMER"><a id="COPYRIGHT"></a>COPYRIGHT AND DISCLAIMER</h1>

<p>Copyright (c) 2001 Sean M. Burke. All rights reserved.</p>

<p>This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.</p>

<p>This program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.</p>

<h1 id="AUTHOR">AUTHOR</h1>

<p>Sean M. Burke, sburke@cpan.org</p>

<div class="pod-errors"><p>1 POD Error</p><div class="pod-errors-detail"><p>The following errors were encountered while parsing the POD:</p><dl><dt>Around line 51:</dt><dd><p>You can&#39;t have =items (as at line 57) unless the first thing after the =over is an =item</p></dd></dl></div></div></div>

<div id="metacpan_install-instructions-dialog" class="modal fade">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h4 class="modal-title">Module Install Instructions</h4>
      </div>
      <div class="modal-body">
        <p>To install Pod::PXML, copy and paste the appropriate command in to your terminal.</p>
        <p><a href="https://metacpan.org/dist/App-cpanminus/view/bin/cpanm">cpanm</a></p>
        <pre><code>cpanm Pod::PXML</code></pre>
        <p><a href="https://metacpan.org/pod/CPAN">CPAN shell</a></p>
        <pre><code>perl -MCPAN -e shell
install Pod::PXML</code></pre>
        <p>For more information on module installation, please visit <a href="https://www.cpan.org/modules/INSTALL.html">the detailed CPAN module installation guide</a>.</p>
      </div>
      <div class="modal-footer">
        <a href="./Pod::PXML.html#" data-dismiss="modal" class="btn">Close</a>
      </div>
    </div>
  </div>
</div>
          </main>
          <div class="content-pagination">
          </div>
        </div>
        <footer class="footer">
          <div class="footer-container">
            <div class="footer-social">
              <div class="footer-link footer-logo">
                <a href="https://metacpan.org/">
                  <img src="https://metacpan.org/static/images/metacpan-logo.svg" alt="MetaCPAN" />
                </a>
              </div>
              <a class="footer-social-link" href="https://github.com/metacpan">
                <i class="fab fa-github-square"></i>
              </a>
              <a class="footer-social-link" href="https://fosstodon.org/@metacpan">
                <i class="fab fa-mastodon"></i>
              </a>
            </div>
            <div class="footer-links">
              <div class="footer-link">
                  <a href="https://metacpan.org/about">About</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/about/sponsors">Sponsor</a>
              </div>
              <div class="footer-link">
                  <a href="https://grep.metacpan.org">grep::cpan</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/recent">Recent</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/about/faq">FAQ</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/tools">Tools</a>
              </div>
              <div class="footer-link">
                  <a href="https://fastapi.metacpan.org/">API</a>
              </div>
              <div class="footer-link">
                  <a href="https://www.perl.org/">Perl.org</a>
              </div>
            </div>
            <div class="footer-sponsors">
              <a class="footer-sponsor-link" target="_blank" href="https://www.bytemark.co.uk/" rel="noopener">
                <img class="footer-sponsor-bytemark" src="https://metacpan.org/static/images/sponsors/bytemark_logo.svg" alt="Bytemark logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://www.liquidweb.com/" rel="noopener">
                <img class="footer-sponsor-liquidweb" src="https://metacpan.org/static/images/sponsors/liquidweb_logo.png" alt="liquidweb logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://deriv.com/careers/" rel="noopener">
                <img class="footer-sponsor-deriv" src="https://metacpan.org/static/images/sponsors/deriv.svg" alt="Deriv logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://geocode.xyz" rel="noopener">
                <img class="footer-sponsor-geocode" src="https://metacpan.org/static/images/sponsors/geocodelogo.svg" alt="Geocode logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://www.fastly.com/" rel="noopener">
                <img class="footer-sponsor-fastly" src="https://metacpan.org/static/images/sponsors/fastly_logo.svg" alt="Fastly logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://opencagedata.com" rel="noopener">
                <img class="footer-sponsor-opencage" src="https://metacpan.org/static/images/sponsors/open-cage.svg" alt="OpenCage logo">
              </a>
            </div>
          </div>
        </footer>
        <div class="modal fade" tabindex="-1" role="dialog" id="metacpan_keyboard-shortcuts">
          <div class="modal-dialog">
            <div class="modal-content">
              <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal">&times;</button>
                <h4 class="modal-title">Keyboard Shortcuts</h4>
              </div>
              <div class="modal-body row">
<div class="col-md-6">
  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>Global</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="keys">
          <kbd>s</kbd>
        </td>
        <td>Focus search bar</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>?</kbd>
        </td>
        <td>Bring up this help dialog</td>
      </tr>
    </tbody>
  </table>

  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>GitHub</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>p</kbd>
        </td>
        <td>Go to pull requests</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>i</kbd>
        </td>
        <td>go to github issues (only if github is preferred repository)</td>
      </tr>
    </tbody>
  </table>
</div>

<div class="col-md-6">
  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>POD</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>a</kbd>
        </td>
        <td>Go to author</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>c</kbd>
        </td>
        <td>Go to changes</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>i</kbd>
        </td>
        <td>Go to issues</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>d</kbd>
        </td>
        <td>Go to dist</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>r</kbd>
        </td>
        <td>Go to repository/SCM</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>s</kbd>
        </td>
        <td>Go to source</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>b</kbd>
        </td>
        <td>Go to file browse</td>
      </tr>

    </tbody>
  </table>
</div>

<div class="col-md-12">
  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>Search terms</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><em>module:</em> (e.g. <a href="https://metacpan.org/search?q=module%3APlugin">module:Plugin</a>)</td>
      </tr>
      <tr>
        <td><em>distribution:</em> (e.g. <a href="https://metacpan.org/search?q=distribution%3ADancer+auth">distribution:Dancer auth</a>)</td>
      </tr>
      <tr>
        <td><em>author:</em> (e.g. <a href="https://metacpan.org/search?q=author%3ASONGMU+Redis">author:SONGMU Redis</a>)</td>
      </tr>
      <tr>
        <td><em>version:</em> (e.g. <a href="https://metacpan.org/search?q=version%3A1.00">version:1.00</a>)</td>
      </tr>
    </tbody>
  </table>
</div>
              </div>
              <div class="modal-footer"></div>
            </div>
          </div>
        </div>
    </body>
</html>
